Presentation009
=IX - Making a Bad Lot Better= List of Presentations Ask not for Whom the Bell tolls. Invitation to the Audience Every object will eventually undergo a catastrophic failure. If we limit our horizons, in the meantime, we must accept that no object is perfect. All objects are faulty. Faults can be used to break objects. More surprisingly faults can be used to make groups of objects more reliable. In this presentation you will be given a lot of faulty processors. Your task is to build less faulty processors using the faulty lot. The first few words of the Bellman might help you in your quest for perfection. These words should give you encouragement and inspiration, "For the Snark was a Boojum, you see.": 'Just the place for a Snark!' the Bellman cried, As he landed his crew with care; Supporting each man on the top of the tide, By a finger entwined in his hair. 'Just the place for a Snark! I have said it twice: That alone should encourage the crew. 'Just the place for a Snark! I have said it thrice: What I tell you three times is true.' Aims and Objectives The objectives of this presentation and practical is to introduce the design of reliable systems from faulty components. We will start with a limitless supply of "statistically equivalent" Rod Actors that convert Observed Images (O.O and O.I) into Imaginary Images (I.o and I.i). Unfortunately every Rod is faulty. The error rate of a Rod is 1 in 10, that is on average 1 in 10 observed images is processed incorrectly. Your task is to build an eye with an error rate of 1 in 10000. The problem is the only components we have are the Rods and some simple Neurons. All we can do is wire these things together. NOTE: The error rate here is very high. This is for the purpose of the exercises below. A more realistic error rate would be much lower depending on the Nature of the processors. Other Constraints that Might Apply One other constraint is that the rate of processing images must not go up by more th 50%. The constraints here are that a Rod takes 100T to act and a Neuron takes 1T. So the initial processing time is 100T and the final processing time must be less than 150T. In the Practical you will be given a limitless supply of Rods and Soft and Hard neurons. Your task is to build an eye that will pass the Good Life test. The Good Life test generates a large number of inputs and assesses whether the error rate of your eye is low enough. However it can't be too low as you will have over engineered the solution and wasted energy. Puzzle: 1 in 27 Coins Is Corrupt This puzzle might help you in your design. You have a pair of balance scales. You are given 27 coins, one of which is corrupted and is heavier than all the others. All the other coins are exactly the same weight. What is the minimum number of times you need to use the balance scales to find the heavy coin? Hint: The minimum number of weigh ins is less than 5!! Vision One * Presentation 2012-03-05 (5/3/12) Hands On: The Eye Tests This is the hands on bit. The code for this presentation is in: * https://github.com/JasonCozens/KeepSafe/tree/master/pcode Different professions need different qualities of eye to see what they are doing. The ones we will consider are the following (the abbreviations are important): * PDA: Professor, Developer, Accountant ** Short Sighted, only concerned with their own world. * SMS: Soldier, Miner, Surgeon ** 2020 Clear Vision, making good decisions in the real world. * FPGA: Fighter Pilot, Grave Architect ** Far Sighted, looking into the future, watching their behinds. NB: Grave - Serious, Weighty, Important, also somewhere to bury things. What Have You Seen? Unfortunately what is in the Imagination is not the same as what is out there as the types are different! Also any imaginary image of reality gets distorted. When an image is distorted or flicked we call this a sin (from zero or 'sin'gularity as incorrect data is worth nothing). When we design something we put upper and lower limits on its quality. Upper limits mean we get what we want. Lower limits mean we aren't paying too much. Exercises There are tests for PDA, SMS and FPGA and stub classes. Implement the classes in the following order: * PdaEye - sin rate: 0.01 to 0.03 * SmsEye - sin rate: 0.001 to 0.003 * FpgaEye - sin rate: 0.00001 to 0.00003 Conditions: # Only use the following classes: ** Rod ** SoftNeuron ** HardNeuron # You may not open up any of the given classes. # Inheritance in the OO sense is banned. # All classes must be sealed. That's all for now. The code is in github. ---- ---- =Licence= This work is licenced under the Copyright Left In Tact licence. ---- ----